package com.xci.platform.auth.core;

import cn.hutool.core.collection.CollUtil;
import com.xci.platform.core.Constant;
import lombok.Data;

import java.util.Date;
import java.util.List;

/**
 * 在线用户模型
 */
@Data
public class OnlineUser {

    public OnlineUser() {
    }

    public OnlineUser(AuthUser authUser) {
        this.setUserId(authUser.getUserId());
        this.setUserName(authUser.getUserName());
        this.setAccount(authUser.getAccount());
        this.setLoginTime(authUser.getLoginTime());
        this.setActiveTime(authUser.getActiveTime());
        this.setDepartmentId(authUser.getDepartmentId());
        this.setDepartmentName(authUser.getDepartmentName());
        this.setIpAddressList(CollUtil.newArrayList(authUser.getIpAddress()));
        this.setBrowserList(CollUtil.newArrayList(authUser.getBrowser()));
        this.setIsAdmin(authUser.getIsAdmin());
    }

    /**
     * 用户主键
     */
    private String userId;

    /**
     * 用户姓名
     */
    private String userName;

    /**
     * 登陆账户
     */
    private String account;

    /**
     * 登录时间
     */
    private Date loginTime;

    /**
     * 激活时间
     */
    private Date activeTime;

    /**
     * 部门主键
     */
    private String departmentId;

    /**
     * 部门名称
     */
    private String departmentName;

    /**
     * 登录IP地址
     */
    private List<String> ipAddressList;

    /**
     * 浏览器
     */
    private List<String> browserList;

    /**
     * 是否超级管理员
     */
    private Boolean isAdmin;

    /**
     * 备注
     */
    private String remark;

    /**
     * 登录IP地址
     */
    public String getIpAddress() {
        if (ipAddressList != null && ipAddressList.size() > 0) {
            return ipAddressList.get(0);
        }
        return Constant.Empty;
    }

    /**
     * 浏览器
     */
    public String getBrowser() {
        if (browserList != null && browserList.size() > 0) {
            return browserList.get(0);
        }
        return Constant.Empty;
    }
}
